home *** CD-ROM | disk | FTP | other *** search
/ Game Programming in C++ - Start to Finish / GameProgrammingS.iso / Peon / PeonSDK-Win32-1.0.0.exe / {app} / PeonMain / include / PeonMain.h < prev    next >
Encoding:
C/C++ Source or Header  |  2005-11-25  |  6.3 KB  |  169 lines

  1.  
  2. #ifndef __PEONMAIN_H_
  3. #define __PEONMAIN_H_
  4. /*
  5. Peon - Win32 Games Programming Library
  6. Copyright (C) 2002-2005 Erik Yuzwa
  7.  
  8. This library is free software; you can redistribute it and/or
  9. modify it under the terms of the GNU Library General Public
  10. License as published by the Free Software Foundation; either
  11. version 2 of the License, or (at your option) any later version.
  12.  
  13. This library is distributed in the hope that it will be useful,
  14. but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16. Library General Public License for more details.
  17.  
  18. You should have received a copy of the GNU Library General Public
  19. License along with this library; if not, write to the Free
  20. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.  
  22. Erik Yuzwa
  23. peon AT wazooinc DOT com
  24. */
  25.  
  26. /**
  27. * \mainpage Peon Engine
  28. *
  29. * \section intro_sec Introduction
  30. *
  31. * The Peon collection of objects is meant to help the beginner learn and
  32. * understand the fundamentals of game programming. The goal of the engine
  33. * is to help you do things.<strong>It is not meant to be a heavy framework</strong>.
  34. *
  35. * I'm not against other frameworks (don't get me wrong), but sometimes they
  36. * become so laden and burdened that it becomes difficult for the newbie
  37. * to simply pick up the codebase and run with it quickly.
  38. *
  39. * \section dll_sec DLL
  40. * Why is this a Dynamically Linked Library? 
  41. * Although SDL is a platform independent library, the Win32 version of the Peon
  42. * library compiles as a DLL. I chose this route, simply because it can make
  43. * the support of this library easier in terms of upgrades for any customer
  44. * buying/using your game built with Peon. Because the code links with the
  45. * DLL during the runtime of your game, you are free to update/upgrade any
  46. * code within so long as you don't change how the functions/classes are 
  47. * interfaced with your modules.
  48. *
  49. * For example, the SceneRenderer object (so far) handles some primitive
  50. * rendering commands. If you were to discover a bug within the object, or
  51. * wish to change it's functionality, then you could just re-ship the DLL to
  52. * the customer, <b>so long as you don't change any function names themselves</b>.
  53. *
  54. * This library also compiles as a DLL, since it depends upon a few other projects
  55. * which are themselves packaged as DLL's. You don't want to end up violating any
  56. * licenses, but still have the freedom to create/distribute the project you want.
  57. *
  58. * \section dependencies_sec Dependencies
  59. *
  60. * The Peon library/collection of objects is built upon some existing popular
  61. * libraries that are already being used by professional game developers.
  62. *
  63. * <i>Note: The license that comes with Peon only covers the Peon library itself.
  64. * Each dependency has its own licensing terms that you are responsible for.</i>
  65. *
  66. * For the most part these are all successfull open source projects which 
  67. * are released under the LGPL (the same as Peon). Provided you retain the 
  68. * copyright headers of each project you can still release commercial
  69. * software using them and retain all the bling.
  70. *
  71. * Here is a list of links to each of the license information pages
  72. * for any dependent sub-projects the Peon library includes/uses.
  73. *
  74. * <ul>
  75. * <li>SDL - <a href="http://www.libsdl.org/license.php">SDL v1.2.9</a>.</li>
  76. * <li>OpenAL - <a href="http://www.openal.org">OpenAL</a>.</li>
  77. * <li>Lua - <a href="http://www.lua.org/license.html">LUA</a>.</li>
  78. * <li>Tokamak - <a href="http://www.tokamakphysics.com/">Tokamak</a></li>
  79. * <li>CEGUI - <a href="http://www.cegui.org.uk/">Crazy Eddie's GUI Toolkit</a></li>
  80. * </ul>
  81. *
  82. * \section install_sec Installation
  83. *
  84. * Check Appendix A in the book <b><i>"Game Programming in C++: Start To Finish"</i></b> for
  85. * some instructions on getting this setup.
  86. * Generally just make sure you let your IDE know where to find the /Peon/PeonMain/include
  87. * and /Peon/PeonMain/lib folder. The /Peon/redist folder contains the compiled
  88. * version of this library, along with the DLL's that you need to distribute with
  89. * any application using Peon. 
  90. *
  91. * Having your installer copy them to the customer's windows\system32 folder is
  92. * an option, or you can leave them all in the same folder as your binary executable.
  93. * The choice is yours and just depends on how you want to support your own product.
  94. * ie. your installer should "be nice" and remove them during an uninstall of
  95. * your game, etc.
  96. *
  97. * \section usage_sec General Usage
  98. *
  99. * The general usage for this library is meant to be (hopefully) very simple as
  100. * I mentioned above. The basic practice is:
  101. * <ol>
  102. * <li>Derive a new application instance from IApplication</li>
  103. * <li>Derive any needed states from IApplicationState</li>
  104. * <li>Throw everything into the EngineCore instance</li>
  105. * <li>Enjoy game programming!</li>
  106. * </ol>
  107. *
  108. * Note: Always check <a href="http://book.wazooinc.com">http://book.wazooinc.com</a> for 
  109. * the latest version of this library and any updates.
  110. *
  111. * \section further_sec Further Resources
  112. * For additional resources into 3D engines, feel free to download and inspect
  113. * the source code to these awesome engines.
  114. * <i>Note that this list is not ranked in any order</i>
  115. * <ul>
  116. * <li><a href="http://www.ogre3d.com">Ogre3D</a></li>
  117. * <li><a href="http://irrlicht.sourceforge.net/">Irrlicht</a></li>
  118. * <li><a href="http://www.genesis3d.com/">Genesis3D</a></li>
  119. * <li><a href="http://www.crystalspace3d.org/tikiwiki/tiki-view_articles.php">Crystal Space 3D</a></li>
  120. * </ul>
  121. *
  122. * For a further list of 3D engines and their specifications, be sure
  123. * to visit the 3D engines database maintained at http://www.devmaster.net/engines
  124. */
  125.  
  126.  
  127.  
  128. #include "Peonstdafx.h"
  129.  
  130. #include "AudioEngine.h"
  131. #include "Billboard.h"
  132. #include "IApplication.h"
  133. #include "IActor.h"
  134. #include "EngineCore.h"
  135. #include "IniConfigReader.h"
  136. #include "FileLogger.h"
  137. #include "SceneCamera.h"
  138. #include "SceneFont.h"
  139. #include "SceneRenderer.h"
  140. #include "SceneTexture.h"
  141. #include "Quaternion.h"
  142. #include "Matrix44.h"
  143. #include "Vector3.h"
  144. #include "Vector4.h"
  145. #include "PrimTypes.h"
  146.  
  147. /*
  148. // This class is exported from the PeonMain.dll
  149. class PEONMAIN_API CPeonMain {
  150. public:
  151.     CPeonMain(void);
  152.     // TODO: add your methods here.
  153. };
  154.  
  155. extern PEONMAIN_API int nPeonMain;
  156.  
  157. PEONMAIN_API int fnPeonMain(void);
  158. */
  159.  
  160. #endif
  161.  
  162.